{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "af48257b-886e-452a-9c66-ce04ef1d2f8d",
   "metadata": {},
   "source": [
    "### Pandas 基本绘图功能课件：坐标轴和标签\n",
    "\n",
    "#### 1. 图表的基本构成\n",
    "\n",
    "在数据可视化中，理解图表的基本构成是非常重要的。这部分将详细讲解坐标轴、标题、标签等内容，帮助大家理解如何通过 Pandas 进行有效的可视化。\n",
    "\n",
    "##### 1.1 坐标轴\n",
    "\n",
    "- **横坐标（X轴）**：\n",
    "  - 横坐标是图表的水平轴，通常用于展示独立变量，例如时间、类别等。\n",
    "  - 在 Pandas 的绘图中，我们可以通过 `x` 参数指定横坐标。\n",
    "  - 自定义横坐标标签的样式：\n",
    "    - 可以使用 `plt.xticks()` 来设置横坐标标签的字体大小、颜色、旋转角度等。\n",
    "    - 例如：`plt.xticks(rotation=45, fontsize=12, color='red')` 将横坐标标签旋转 45 度，字体大小设置为 12，颜色为红色。\n",
    "- **纵坐标（Y轴）**：\n",
    "  - 纵坐标是图表的垂直轴，通常用于展示依赖变量，例如数量、价格、变化趋势等。\n",
    "  - 在 Pandas 的绘图中，我们可以通过 `y` 参数指定纵坐标。\n",
    "  - 自定义纵坐标标签的样式：\n",
    "    - 使用 `plt.yticks()` 来设置纵坐标标签的字体大小、颜色等。\n",
    "    - 例如：`plt.yticks(fontsize=12, color='blue')` 将纵坐标标签的字体大小设置为 12，颜色为蓝色。\n",
    "\n",
    "举个例子，如果我们有一组月份与相应销售额的数据，月份将是横坐标，因为它是时间序列，通常用于展示数据随时间的变化；而销售额将是纵坐标，因为它展示了数量或趋势。\n",
    "\n",
    "##### 1.2 标题和标签\n",
    "\n",
    "- **图表标题**：\n",
    "\n",
    "  - 图表标题用于对整个图表的内容进行描述。一个好的标题可以帮助读者快速理解图表的目的。\n",
    "\n",
    "  - 在 Pandas 中，我们可以通过 Matplotlib 提供的 `plt.title()` 方法来添加图表标题。\n",
    "\n",
    "  - 自定义标题样式\n",
    "\n",
    "    ：\n",
    "\n",
    "    - 可以通过 `plt.title()` 的参数设置标题的字体大小、颜色、位置等。\n",
    "    - 例如：`plt.title('Monthly Sales Trend', fontsize=16, color='purple', loc='center')` 将标题字体大小设置为 16，颜色为紫色，位置在中心。\n",
    "\n",
    "- **坐标轴标签**：\n",
    "\n",
    "  - 坐标轴标签用于描述横坐标和纵坐标的含义。它们帮助读者了解坐标轴表示的数据内容。\n",
    "\n",
    "  - 在 Pandas 中，我们可以使用 `plt.xlabel()` 和 `plt.ylabel()` 来为横坐标和纵坐标添加标签。\n",
    "\n",
    "  - 自定义坐标轴标签样式：\n",
    "\n",
    "    - 可以通过 `plt.xlabel()` 和 `plt.ylabel()` 设置字体大小、颜色等。\n",
    "\n",
    "    - 例如：`plt.xlabel('Month', fontsize=14, color='green')` 和 `plt.ylabel('Sales Amount', fontsize=14, color='green')` 分别设置横纵坐标标签的字体大小为 14，颜色为绿色。\n",
    "\n",
    "    - **标签旋转**：有时候为了更好的视觉效果，可以将标签进行旋转，例如：`plt.xlabel('Month', rotation=0)`，使标签保持水平。\n",
    "\n",
    "    - 在 `Matplotlib` 中，`plt.xlabel()` 和 `plt.ylabel()` 用于设置横坐标和纵坐标的标签，可以通过传递额外的参数来自定义标签的样式。例如，`fontsize` 用于设置字体大小，`color` 用于设置字体颜色，`labelpad` 用于控制标签与坐标轴之间的距离。`plt.xlabel('Month', fontsize=14, color='green', labelpad=15)` 将横坐标标签设置为 \"Month\"，字体大小为 14，颜色为绿色，并且通过 `labelpad=15` 将标签与横坐标轴的距离增大；`plt.ylabel('Sales Amount', fontsize=14, color='green', labelpad=15)` 将纵坐标标签设置为 \"Sales Amount\"，同样字体大小为 14，颜色为绿色，并将标签与纵坐标轴的距离增大。\n",
    "\n",
    "      `plt.xticks()` 和 `plt.yticks()` 用于设置坐标轴的刻度标签。`plt.xticks(rotation=45, fontsize=12, color='red')` 用于自定义横坐标标签的样式，将横坐标的标签旋转 45 度，字体大小为 12，颜色为红色；`plt.yticks(fontsize=12, color='blue')` 用于设置纵坐标标签的字体大小为 12，颜色为蓝色。通过这些参数，可以灵活控制图表的坐标轴标签和刻度的外观，使其更加美观和易于阅读，并通过 `labelpad` 调整标签的位置，避免与主图内容发生重叠。\n",
    "\n",
    "##### 1.3 图例\n",
    "\n",
    "- 图例\n",
    "\n",
    "  - 图例用于说明图表中的不同元素的含义，特别是在有多条线或多个类别时，图例可以帮助读者快速区分各个元素。\n",
    "\n",
    "  - 在 Pandas 的 `.plot()` 方法中，默认会生成图例。我们可以使用 `legend` 参数进行控制，例如打开或关闭图例，或者自定义图例的位置。\n",
    "\n",
    "  - 在 `Matplotlib` 中，`plt.xlabel()` 和 `plt.ylabel()` 用于设置横坐标和纵坐标的标签，可以通过传递额外的参数来自定义标签的样式。例如，`fontsize` 用于设置字体大小，`color` 用于设置字体颜色。`plt.xlabel('Month', fontsize=14, color='green')` 将横坐标标签设置为 \"Month\"，字体大小为 14，颜色为绿色；`plt.ylabel('Sales Amount', fontsize=14, color='green')` 将纵坐标标签设置为 \"Sales Amount\"，同样字体大小为 14，颜色为绿色。\n",
    "\n",
    "    `plt.xticks()` 和 `plt.yticks()` 用于设置坐标轴的刻度标签。`plt.xticks(rotation=45, fontsize=12, color='red')` 用于自定义横坐标标签的样式，将横坐标的标签旋转 45 度，字体大小为 12，颜色为红色；`plt.yticks(fontsize=12, color='blue')` 用于设置纵坐标标签的字体大小为 12，颜色为蓝色。通过这些参数，可以灵活控制图表的坐标轴标签和刻度的外观，使其更加美观和易于阅读。\n",
    "\n",
    "  - 自定义图例样式\n",
    "\n",
    "    - 使用 `plt.legend()` 可以对图例进行自定义，例如设置图例的位置、字体大小等。\n",
    "    - 例如：`plt.legend(loc='upper left', fontsize=12)` 将图例放置在左上角，字体大小设置为 12。\n",
    "\n",
    "#### 2. 使用 Pandas 的 `.plot()` 方法示例\n",
    "\n",
    "下面，我们通过一个具体的代码示例来演示如何使用 Pandas 的 `.plot()` 方法绘制图表，并说明每个部分的构成。\n",
    "\n",
    "##### 示例代码：绘制销售数据的折线图\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "d5633b26-4123-4ea7-b37a-d4a1842e62c6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "# 创建一个包含每月销售数据的 DataFrame\n",
    "data = {\n",
    "    'Month': ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n",
    "    'Sales': [1500, 1800, 2500, 2300, 3000, 3500, 4000, 3700, 3800, 4200, 4500, 5000]\n",
    "}\n",
    "df = pd.DataFrame(data)\n",
    "\n",
    "# 使用 Pandas 绘制折线图\n",
    "df.plot(x='Month', y='Sales', kind='line', marker='o', linestyle='-', color='b', label='Sales')\n",
    "\n",
    "# 添加图表标题和坐标轴标签\n",
    "plt.title('Monthly Sales Trend', fontsize=16, color='purple', loc='center')  # 图表标题，设置字体大小、颜色和位置\n",
    "plt.xlabel('Month', fontsize=14, color='green', labelpad=20)               # 横坐标标签，描述月份，并调整与轴的距离\n",
    "plt.ylabel('Sales Amount', fontsize=14, color='green', labelpad=20)        # 纵坐标标签，描述销售额，并调整与轴的距离\n",
    "\n",
    "# 自定义横坐标标签样式\n",
    "plt.xticks(rotation=45, fontsize=12, color='red')             # 横坐标标签旋转 45 度，字体大小为 12，颜色为红色\n",
    "\n",
    "# 自定义纵坐标标签样式\n",
    "plt.yticks(fontsize=12, color='blue')                         # 纵坐标标签字体大小为 12，颜色为蓝色\n",
    "\n",
    "# 添加网格线，便于阅读\n",
    "plt.grid(True)\n",
    "\n",
    "# 自定义图例的位置、字体大小等\n",
    "plt.legend(loc='upper left', fontsize=12, title=\"Sales Data\", title_fontsize=14, frameon=False)  # 图例在左上角，字体大小为 12，标题为 \"Sales Data\"，标题字体大小为 14，去除边框\n",
    "\n",
    "# 显示图表\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c545ade6-ff26-4fd2-9e42-8e179336d6a3",
   "metadata": {},
   "source": [
    "##### 代码详解\n",
    "\n",
    "1. **创建数据**：\n",
    "   - 我们首先创建了一个字典 `data`，包含每月的销售数据，其中 `'Month'` 是月份，`'Sales'` 是相应的销售额。\n",
    "   - 使用 `pd.DataFrame(data)` 将数据转换为 Pandas 的 `DataFrame` 结构。\n",
    "2. **绘制折线图**：\n",
    "   - 使用 `df.plot()` 方法绘制折线图，`x='Month'` 指定了横坐标为月份，`y='Sales'` 指定了纵坐标为销售额。\n",
    "   - `kind='line'` 表示我们要绘制折线图，`marker='o'` 表示在每个数据点上添加圆点，使得趋势更加明显。\n",
    "   - `linestyle='-'` 和 `color='b'` 分别设置线型为实线、颜色为蓝色。\n",
    "3. **添加标题和坐标轴标签**：\n",
    "   - 使用 `plt.title('Monthly Sales Trend')` 为图表添加标题，描述了图表的内容是“每月销售趋势”。\n",
    "   - 使用 `plt.xlabel('Month')` 和 `plt.ylabel('Sales Amount')` 分别为横坐标和纵坐标添加标签，帮助读者理解坐标轴表示的内容。\n",
    "4. **显示图表**：\n",
    "   - 使用 `plt.show()` 显示图表。\n",
    "\n",
    "##### 说明各部分的构成\n",
    "\n",
    "- **横坐标（X轴）**：月份 (`Month`) 是横坐标，用于表示时间序列。\n",
    "- **纵坐标（Y轴）**：销售额 (`Sales`) 是纵坐标，用于表示数量或趋势。\n",
    "- **图表标题**：`Monthly Sales Trend` 用于描述图表的整体内容。\n",
    "- **坐标轴标签**：`Month` 是横坐标标签，`Sales Amount` 是纵坐标标签，帮助读者理解各自表示的数据。\n",
    "- **图例**：默认情况下，`Pandas` 会自动为图表生成图例。在这里它帮助说明不同的数据系列。\n",
    "\n",
    "- 理解图表的基本构成对于有效的数据可视化至关重要。\n",
    "- 使用 Pandas 的 `.plot()` 方法可以轻松绘制图表，并通过 Matplotlib 添加标题、标签等，使图表更加易于理解。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a0c1bd5d-886b-465b-be6e-0fe6b208ad62",
   "metadata": {},
   "source": [
    "### 1. **创建数据和 DataFrame**\n",
    "\n",
    "```python\n",
    "data = {\n",
    "    'Month': ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n",
    "    'Sales': [1500, 1800, 2500, 2300, 3000, 3500, 4000, 3700, 3800, 4200, 4500, 5000]\n",
    "}\n",
    "df = pd.DataFrame(data)\n",
    "```\n",
    "\n",
    "- **数据创建**：`data` 字典包含了每月的销售数据，`'Month'` 列是月份，`'Sales'` 列是对应的销售额。通过这种方式，我们能够以结构化的方式存储并访问数据。\n",
    "- **DataFrame**：使用 `pd.DataFrame(data)` 将字典 `data` 转换为 Pandas DataFrame，这是 Pandas 用来存储和操作表格数据的核心数据结构。\n",
    "\n",
    "### 2. **绘制折线图**\n",
    "\n",
    "```python\n",
    "df.plot(x='Month', y='Sales', kind='line', marker='o', linestyle='-', color='b', label='Sales')\n",
    "```\n",
    "\n",
    "- `df.plot()` 是 Pandas 提供的一个方便方法，用于从 DataFrame 绘制各种类型的图表。这里我们使用它来绘制折线图。\n",
    "\n",
    "- 参数解释\n",
    "\n",
    "  ：\n",
    "\n",
    "  - `x='Month'`：指定 DataFrame 中的 `'Month'` 列作为横坐标。\n",
    "  - `y='Sales'`：指定 `'Sales'` 列作为纵坐标。\n",
    "  - `kind='line'`：指定图表类型为折线图（`'line'`）。\n",
    "  - `marker='o'`：在每个数据点上绘制圆形标记。\n",
    "  - `linestyle='-'`：线条为实线。\n",
    "  - `color='b'`：设置折线颜色为蓝色 (`'b'` 是蓝色的简写)。\n",
    "  - `label='Sales'`：为图例指定标签，用于描述该数据系列（这里是 \"Sales\"）。\n",
    "\n",
    "### 3. **添加图表标题**\n",
    "\n",
    "```python\n",
    "plt.title('Monthly Sales Trend', fontsize=16, color='purple', loc='center')\n",
    "```\n",
    "\n",
    "- ```\n",
    "  plt.title()\n",
    "  ```\n",
    "\n",
    "   用于设置图表的标题。我们在这里设置了：\n",
    "\n",
    "  - `'Monthly Sales Trend'` 作为标题文本。\n",
    "  - `fontsize=16` 设置标题字体大小为 16。\n",
    "  - `color='purple'` 设置标题的颜色为紫色。\n",
    "  - `loc='center'` 将标题位置设置为居中。\n",
    "\n",
    "### 4. **设置横坐标标签**\n",
    "\n",
    "```python\n",
    "plt.xlabel('Month', fontsize=14, color='green', labelpad=20)\n",
    "```\n",
    "\n",
    "- ```\n",
    "  plt.xlabel()\n",
    "  ```\n",
    "\n",
    "   用于设置横坐标标签。此处设置了：\n",
    "\n",
    "  - `'Month'` 作为横坐标标签，描述横坐标为月份。\n",
    "  - `fontsize=14` 设置字体大小为 14。\n",
    "  - `color='green'` 设置字体颜色为绿色。\n",
    "  - `labelpad=20` 设置标签与坐标轴之间的间距为 20 个单位，这样避免标签过于接近坐标轴。\n",
    "\n",
    "### 5. **设置纵坐标标签**\n",
    "\n",
    "```python\n",
    "plt.ylabel('Sales Amount', fontsize=14, color='green', labelpad=20)\n",
    "```\n",
    "\n",
    "- ```\n",
    "  plt.ylabel()\n",
    "  ```\n",
    "\n",
    "   用于设置纵坐标标签。与横坐标标签类似，这里：\n",
    "\n",
    "  - `'Sales Amount'` 作为纵坐标标签，描述纵坐标为销售额。\n",
    "  - `fontsize=14` 设置字体大小为 14。\n",
    "  - `color='green'` 设置字体颜色为绿色。\n",
    "  - `labelpad=20` 设置标签与纵坐标轴之间的间距为 20。\n",
    "\n",
    "### 6. **自定义横坐标标签样式**\n",
    "\n",
    "```python\n",
    "plt.xticks(rotation=45, fontsize=12, color='red')\n",
    "```\n",
    "\n",
    "- ```\n",
    "  plt.xticks()\n",
    "  ```\n",
    "\n",
    "   用于设置横坐标刻度标签。此处：\n",
    "\n",
    "  - `rotation=45` 设置横坐标刻度标签旋转 45 度，避免标签重叠或难以读取。\n",
    "  - `fontsize=12` 设置字体大小为 12。\n",
    "  - `color='red'` 设置横坐标标签的字体颜色为红色。\n",
    "\n",
    "### 7. **自定义纵坐标标签样式**\n",
    "\n",
    "```python\n",
    "plt.yticks(fontsize=12, color='blue')\n",
    "```\n",
    "\n",
    "- ```\n",
    "  plt.yticks()\n",
    "  ```\n",
    "\n",
    "   用于设置纵坐标刻度标签的样式。此处：\n",
    "\n",
    "  - `fontsize=12` 设置字体大小为 12。\n",
    "  - `color='blue'` 设置纵坐标标签的字体颜色为蓝色。\n",
    "\n",
    "### 8. **添加网格线**\n",
    "\n",
    "```python\n",
    "plt.grid(True)\n",
    "```\n",
    "\n",
    "- `plt.grid(True)` 打开图表的网格线，使得读者可以更容易地对照图表上的数据点和坐标轴。网格线通过在图表上显示垂直和水平的虚线，使图表更加清晰和易于理解。\n",
    "\n",
    "### 9. **自定义图例**\n",
    "\n",
    "```python\n",
    "plt.legend(loc='upper left', fontsize=12, title=\"Sales Data\", title_fontsize=14, frameon=False)\n",
    "```\n",
    "\n",
    "- ```\n",
    "  plt.legend()\n",
    "  ```\n",
    "\n",
    "   用于添加图例，说明图表中不同元素的含义。这里：\n",
    "\n",
    "  - `loc='upper left'` 将图例放置在图表的左上角。\n",
    "  - `fontsize=12` 设置图例文本的字体大小为 12。\n",
    "  - `title=\"Sales Data\"` 为图例添加标题，说明图例所代表的内容是销售数据。\n",
    "  - `title_fontsize=14` 设置图例标题的字体大小为 14。\n",
    "  - `frameon=False` 关闭图例的边框，使图例背景透明，去除不必要的框架。\n",
    "\n",
    "### 10. **显示图表**\n",
    "\n",
    "```python\n",
    "plt.show()\n",
    "```\n",
    "\n",
    "- `plt.show()` 用于显示图表。调用此方法后，绘制的图表会弹出显示在屏幕上，等待用户查看。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "b2c35f62-6dd1-43ac-aaab-08ec965ab961",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
